Automated writ response system

ABSTRACT

Methods, apparatuses and systems facilitating responses to writs, such as subpoenas, in an efficient and timely manner. Implementations of the invention may include a writ response module and a queue manager to offer web service providers to automatically generate reports in response to various writs and to prioritize processing and human review prior to delivery of results.

PRIORITY

This application is a continuation under 35 U.S.C. §120 of U.S. patentapplication Ser. No. 13/074,924, filed 29 Mar. 2011, which isincorporated herein by reference.

TECHNICAL FIELD

The present disclosure generally relates to responding to informationrequests (such as writs, subpoenas, and other forms of requests forinformation), and in particular, to systems for facilitating responsesto such requests for network service providers.

BACKGROUND

A writ is a formal written order issued by a body with administrative orjudicial jurisdiction, commanding the person or legal entity to whom itis addressed to provide information described in the writ. Warrants,prerogative writs and subpoenas are types of writs. Web serviceproviders, such as social networking systems, email providers, and thelike, typically maintain an array of data regarding its users.Typically, each web service provider controls access to user informationbased on a privacy policy. Currently, when web service providers receivea writ from a law enforcement agency, there is no automated system toassist with preparing a response. Rather, gathering the data relating toan identified user generally involves a manual process of generatingseveral queries and collecting the information.

SUMMARY

The present invention provides methods, apparatuses and systemsfacilitating responses to writs, such as subpoenas, in an efficient andtimely manner. Implementations of the invention may include a writresponse module and a queue manager to offer web service providers toautomatically generate reports in response to various writs and toprioritize processing and human review prior to delivery of results.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating an example system including awrit response system according to one implementation of the invention.

FIG. 2 illustrates an example process flow according to oneimplementation of the invention.

FIG. 3 illustrates another example process flow implemented by a queuemanager according to one implementation of the invention.

FIG. 4 illustrates an example network environment.

FIG. 5 illustrates an example computer system.

DESCRIPTION OF EXAMPLE EMBODIMENTS

The invention is now described in detail with reference to a fewembodiments thereof as illustrated in the accompanying drawings. In thefollowing description, numerous specific details are set forth in orderto provide a thorough understanding of the present disclosure. It isapparent, however, to one skilled in the art, that the presentdisclosure may be practiced without some or all of these specificdetails. In other instances, well known process steps and/or structureshave not been described in detail in order not to unnecessarily obscurethe present disclosure. In addition, while the disclosure is describedin conjunction with the particular embodiments, it should be understoodthat this description is not intended to limit the disclosure to thedescribed embodiments. To the contrary, the description is intended tocover alternatives, modifications, and equivalents as may be includedwithin the spirit and scope of the disclosure as defined by the appendedclaims.

A writ is a formal written order issued by a body with administrative orjudicial jurisdiction, commanding the person to whom it is addressed todo or refrain from doing some specified act. Warrants, prerogative writsand subpoenas are types of writs. A subpoena is a legal order commandingthe person or organization named in the subpoena to give sworn testimonyat a specified time and place about a matter concerned in aninvestigation or a legal proceeding, such as a trial. Witnesses ornonparties to litigation may be in possession of relevant materials and,as such, may be subject to subpoenas, preservation notices or legalholds. A legal hold, for example, is a communication that suspends thenormal disposition or processing of records and may alternatively becalled a “preservation notice,” “preservation order” or “hold notice.”

Preservation notices or requests may precede the issuance of a subpoena,which makes formal legal demand for the production of the needed items.Elements may include but are not limited to the following: a statementof the name, venue and basic elements of the litigation or investigationsufficient that the recipient can fully understand the matter at hand; adescription of the legal or business relationship between the requestingparty and the non-party recipient; a copy of or reference to anycontract or agreement that was in effect during the relevant timeperiod; identification of the range of different types of material to bepreserved; a request to halt normal business practices that may destroypotential evidence, such as server back-up tape rotation, electronicdata shredding, drive re-imaging, the sale/gift/destruction of computersystems and disk defragmentation or routine computer maintenance;instructions to communicate retention obligations to all persons eitherin the organization or in control of the organization who may haveaccess to relevant material, as well as to any IT personnel or employeeswith hands-on access to electronic and computer systems; a request thatthe recipient direct any questions about the subject matter or scope ofthe notice to a designated legal representative of the requesting party;a request that the non-party recipient periodically reissue and refreshthe notice distributed to remind persons having relevant material thatthe notice is still in effect until they are otherwise advised; writtenacknowledgement of receipt of notice; confirmation of intent to complywith preservation request; and the like.

A privacy policy is a legal document that discloses some or all of theways a network or web service provider gathers, uses, discloses andmanages a user's or customer's data. The exact terms of a privacy policywill depend upon the service and applicable law and may need to addressthe requirements of a variety of different jurisdictions. While there isno universal guidance for the content of specific privacy policies,generally service providers require personally identifying informationsuch as name, email, gender, birth date, finance information, contactinformation, and the like. They use this information to manage theservice, to contact users, to make advertisement suggestions, and thelike.

On the other hand, when a crime is committed, a government lawenforcement agency may request a web or network service provider toprovide information related to an identified user or other legal entity.In other situations, law enforcement or other government agencies mayalso seek user information in connection with civil or administrativematters. The requests may be in the form of preservation requests,subpoenas, search warrants, court orders, or related legal writs. Forservice providers, there exists a tension between preserving userprivacy and responding in a timely manner to legal process requests.Accordingly, for larger service providers, it may require a significantamount of human resources to gather the requested information andfulfill the requests, while at the same time guarding user privacy tothe greatest extent possible.

Currently, when web service providers who have user information receivea writ from a law enforcement agency (LEA), there is no automated systemto facilitate generating responses that include the requested data. Mostof the time, there is one person or group in charge of handlingresponses to writs. This person or group generally validates theresponse, gathers related data, and then sends the data to therequesting LEA. However, searching for and collecting data takes anextensive amount of time and may result in a delayed response. Forexample, relevant information may be stored in user profile or accountdatabases, server or web logs, and the like.

Various implementations of the invention provide an example system thatautomatically generates responses to various writs in an efficient andprioritized manner to assist network service providers in complying withsuch writs in a timely and efficient process. FIG. 1 is a functionalblock diagram that illustrates an example system and networkenvironment. As FIG. 1 illustrates, an example network environment andsystem includes one or more law enforcement agencies 102, a writ portalsystem 104, a writ response system 106, and a network service providersystem 108. Writ portal system 104 is an automated or semi-automatedsystem that LEAs can use to submit various types of writs and datapreservation requests for execution. LEAs may access writ portal system104 by email, phone, and fax, causing a human operator to process a writrequest. In other implementations, LEAs may access writ portal system104 using a computing system to send a writ request to writ portalsystem 104 that supports a set of application programming interfaces(APIs) that facilitate submission of requests to the writ portal system104. Writ portal system 104 may interface with a variety of differentLEAs over a vast array of communications channels. In oneimplementation, writ portal system 104 is responsible for translatingwrit requests in various different forms and formats into one of astandardized set of writ requests for submission to writ response system106. In one implementation, writ portal system 104 may be operated by athird party relative to the entity or enterprise that operates andmaintains writ response system 106 and/or network service providersystem 108. For example, writ portal system 104 may be maintained by aspecialized, third party service or platform—such as YAANA TECHNOLOGIES,LLC of Milpitas, Calif. In one implementation, writ portal system 104maintains computerized systems that transmit requests for informationcorresponding to a given writ and also include scheduling functionalitythat retries the requests based on a schedule to later obtain therequested information.

In one implementation, writ response system 106 supports a set of APIsthat allows writ portal system 104 to register writ requests forprocessing. In one implementation, writ response system 106 supportsHTTP functionality allowing writ portal system 104 to transmit writrequests. In one implementation, a writ request includes one or more ofthe following attributes: a user identifier (or identifying informationthat maps to a user identifier), a type of writ (e.g., preservationrequest, pen register, subpoena, warrant, etc.), an identifier for therequesting law enforcement agency, and one or more tags describing metainformation about the request, and copies of (or links to) supportingdocumentation (including, in some instances, the formal writ itself). Asdiscussed below, writ response system 106 is operative to process therequest, schedule one or more synchronous and/or asynchronous datageneration jobs, and deliver a response to the writ request.

Writ response system 106 accesses one or more systems of network serviceprovider system 108 to generate data responsive to a given writ request.In one implementation, writ response system 106 generates one or morejobs that query various systems of network service provider system 108based on the type of writ associated with the request. In mostimplementations, the same enterprise or legal entity maintains both writresponse system 106 and network service provider system 108. In otherimplementations, writ response system 106 is maintained as a third partysystem separate from network service provider system.

FIG. 2 illustrates an example method, implemented by writ responsesystem 106, for processing a writ request. In one implementation, whenwrit response system 106 receives a writ request from writ portal system104 (202), it accesses a database of open cases against the useridentifier identified in the request to determine whether a casecorresponding to the request and user identifier has already been opened(204). If no existing case is identified, writ response system 106creates a new case entry and a new request entry in the database, andtransmits an initial response to the request (206). In oneimplementation, the database is a relational database including a casetable and a request table. In one implementation, the cases tableincludes the following fields: a case identifier, a writ portalidentifier, a writ date, a law enforcement agency identifier, a lawenforcement agency country, a request type, a secret key, a secret type,and a delete-by date. In some implementations, the requests tableincludes the following fields: a data request identifier, a caseidentifier, a user identifier, requested content type identifiers,content URLs, an internal reviewer identifier, an approved flag, startdate, end date, a delivered flag, a delivery method identifier, agenerated flag, and the like. The initial response to the request, inone implementation, is essentially an acknowledgment of the request, butmay not contain any requested data. The initial response may include acase identifier and other information that writ portal system 104 mayinclude in future requests for the same case. In one implementation,writ portal system 104 is configured to send additional requests fordata at periodic intervals, such as every hour, until a full response isreceived. In another implementation, the initial response may include atime value indicating when the writ portal system 104 should check backfor information.

Writ response system 106 then generates one or more data generation jobsbased on the type of writ (208). For example, different writ types mayrequire access to different types of information maintained by oravailable through network service provider system 108. As discussedabove, writ types may include preservation requests, pen registers,subpoenas, search warrants, court orders, and the like. In addition,some job types may spawn synchronous requests, while others may spawnasynchronous requests. Still further, some jobs may be executedperiodically to gather data over successive intervals.

Network service provider system 108 may host one or more networkapplications. In embodiments where network service provider 108 hosts asocial networking application, the data generation jobs may include jobsdirected to retrieving one or more of the following attributes orinformation types: 1) user profile information associated with the useridentifier, 2) wall posts associated with the user identifier, 3) newsfeed items associated with the user identifier, 4) notes, 5) sharedlinks, 6) installed applications, 7) group memberships, 8) eventsassociated with the user identifier; 9) friends or contacts associatedwith the user identifier; 10) basic subscriber or user information, 11)photographs associated with the user identifier; 12) chat logs, and 13)web logs (time stamp, user id, URL, and remote IP address). Other typesof network applications may include other types of information, such asemails sent or received, web pages sent or received, blog posts, and thelike. In addition, some report generation jobs may check the data storesmaintained by writ response system 106 to determine whether any data wasstored in response to a previously issued preservation request. Thisinformation may be maintained by a variety of different systems internalto network service provider system 108. As discussed above, writresponse system 106 may generate one or more different jobs that may beserved synchronously or asynchronously. Responses generated by thedifferent jobs are processed by a queue manager that, as discussedbelow, may place the responses on a queue in a manner that isprioritized based on one or more tags or other information associatedwith a request or case.

In one implementation, some writ types may require approval beforeexecution. For example, search warrants, subpoenas, and the like mayrequire approval prior to execution. For such writ types, writ responsesystem 106 may route these requests to a pre-approval queue for reviewby an administrator (210, 212). Otherwise, writ response system 106routes the request to one or more job queues for execution (214). Forexample, in one implementation, preservation requests are routeddirectly for processing, as no information is returned in response tothe requests. Rather, a follow-up search warrant or subpoena isgenerally required to obtain the preserved information. As data isgenerated and returned, it is stored in a persistent data store inassociation with the case identifier. Receipt of the information alsocauses a review job entry to be placed on a review queue by a queuemanager process that may prioritize placement on the queue based on oneor more attributes of the case.

If the writ request corresponds to an existing case (204), writ responsesystem 106 creates a new request entry in a requests table (220). Writresponse system 106 may also access a data store of responsiveinformation to determine whether any data has been generated for thecase that has been approved for release (222, 224). If no data exists orhas been approved for release, writ response system 106 returns aresponse indicating that no data is currently available (226).Otherwise, if data is available and approved for release, writ responsesystem transmits a response including the data to writ portal system 104(or directly to the requesting LEA). In some implementations, theprocess flow may differ. For example, if the writ request is apreservation request, writ response system 106 may respond with anindication that data has been retrieved and stored. However, since thepreservation request is not a formal subpoena or court order, no actualinformation is returned.

A writ request or case may be tagged at various points in a writresponse process workflow. The tags appended to the request mayinfluence where jobs, responses and/or requests themselves are placed onvarious processing queues, such as job queues, review queues and thelike. For example, writ portal system 104 may add tags to the writrequest that indicate context for the request (such as whether theunderlying case involves a crime, such as kidnapping, or otherwiserequires a response on an urgent basis). Still further, an administratorreviewing requests on a pre-approval queue may examine the supportingdocumentation and add tags to the request that include contextinformation. In some implementations, the reviewer may directly classifythe case as high priority. Some of the factors that a review or aprogrammatic process may consider when deciding whether a case is highpriority include: the country or local of the user identifier,requesting agency or underlying incident; the name of the requestingagency; the age of the user associated with the user identifier; whetherthe user account is believed to be fake or real; the nature of theunderlying, alleged crime (if any); context information (e.g., childexploitation, pornography, contraband, terrorism); the type of legalwrit; and the type of threat posed generally or to the network serviceprovider.

FIG. 3 illustrates a method implemented by a queue manager process forreceiving responses to various jobs for a case and placing the draftreport on a review queue. As FIG. 1 illustrates the writ response system106 may include a queue manager process 120 and a review station 124. Inone implementation, after one or more report generation jobs returnresults of their queries (302), a queue manager 120 may format thereceived data into a draft report and store it in a data store for laterretrieval (304). In one implementation, the draft report is formatted asan XML document. The queue manager 120 may then access one or moreattributes of the case to determine whether the draft report should berouted to a review queue (306). For example, preservation requestsgenerally do not require review (except for internal auditing purposes),since the data will not be released in response to a request. Subpoenas,however, generally require a response. Accordingly, if the writ typerequires responsive data, then the queue manager may route the draftreport to a review queue. In one implementation, the queue manager 120may access the tags associated with the case or writ request todetermine a priority level. For example, a rule set can be configured toassign a priority level or score based on one or more tags associatedwith the request. The rule set may be changes as circumstances or goalsdictate. For example, a writ request associated with an urgent crime inprogress or a kidnapping may receive high priority treatment. In oneimplementation, after the queue manager 120 has resolved a prioritylevel or score, it places the request in a review queue. In oneimplementation, the queue manager 120 may operate in connection with ahigh priority queue and a low priority or regular job queue. Any numberof queues and queue types can be used. Reports associated with highpriority scores or levels may be placed on the high priority queue forfaster processing and/or for review by a different set of humanreviewers. A human reviewer at review station 124 may then access thedraft reports, typically selecting from the high priority queue overother queues, and review the writ request and/or the report, performadditional investigation, conduct additional searches, filter aspects ofthe report, redact aspects of the report and/or generate a final report.After the final report is generated, the human review may approve it forrelease, causing it to be transmitted to writ portal system 104 when itpolls writ response system 106, as discussed above. After a report isapproved, queue manager 120 removes it from the review.

After the requested report is approved, there is a delivery step. Asdiscussed above, the report may be provided the next time a writ portalsystem 104 transmits a request for the report. In some instances,however, a rule set may determine whether to use other means. Forexample, writ response system, for certain types of requests, may sendpush notifications to writ portal system 104 or directly to therequesting LEA system 102 that a report is ready for retrieval.

Particular embodiments may be implemented in a network environment. FIG.4 illustrates an example network environment 500 suitable for providingsoftware validation as a service. Network environment 500 includes anetwork 510 coupling one or more servers 520 and one or more clients 530to each other. In particular embodiments, network 510 is an intranet, anextranet, a virtual private network (VPN), a local area network (LAN), awireless LAN (WLAN), a wide area network (WAN), a metropolitan areanetwork (MAN), a portion of the Internet, or another network 510 or acombination of two or more such networks 510. The present disclosurecontemplates any suitable network 510.

One or more links 550 couple a server 520 or a client 530 to network510. In particular embodiments, one or more links 550 each includes oneor more wireline, wireless, or optical links 550. In particularembodiments, one or more links 550 each includes an intranet, anextranet, a VPN, a LAN, a WLAN, a WAN, a MAN, a portion of the Internet,or another link 550 or a combination of two or more such links 550. Thepresent disclosure contemplates any suitable links 550 coupling servers520 and clients 530 to network 510.

In particular embodiments, each server 520 may be a unitary server ormay be a distributed server spanning multiple computers or multipledatacenters. Servers 520 may be of various types, such as, for exampleand without limitation, web server, news server, mail server, messageserver, advertising server, file server, application server, exchangeserver, database server, or proxy server. In particular embodiments,each server 520 may include hardware, software, or embedded logiccomponents or a combination of two or more such components for carryingout the appropriate functionalities implemented or supported by server520. For example, a web server is generally capable of hosting websitescontaining web pages or particular elements of web pages. Morespecifically, a web server may host HTML files or other file types, ormay dynamically create or constitute files upon a request, andcommunicate them to clients 530 in response to HTTP or other requestsfrom clients 530. A mail server is generally capable of providingelectronic mail services to various clients 530. A database server isgenerally capable of providing an interface for managing data stored inone or more data stores.

In particular embodiments, a router 522 may reside on a server 520 ormay be hosted on a separate device. Router 522 may include hardware,software, or embedded logic components or a combination of two or moresuch components for carrying out various processes described herein.

In particular embodiments, one or more data storages 540 may becommunicatively linked to one or more servers 520 via one or more links550. In particular embodiments, data storages 540 may be used to storevarious types of information. In particular embodiments, the informationstored in data storages 540 may be organized according to specific datastructures. In particular embodiment, each data storage 540 may be arelational database. Particular embodiments may provide interfaces thatenable servers 520 or clients 530 to manage, e.g., retrieve, modify,add, or delete, the information stored in data storage 540.

In particular embodiments, each client 530 may be an electronic deviceincluding hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by client 530.For example and without limitation, a client 530 may be a desktopcomputer system, a notebook computer system, a netbook computer system,a handheld electronic device, or a mobile telephone. In particularembodiments, a client 530 may be one or more services provided byAKAMAI, which may download various content or data, cache them, and thendeliver them to other clients 530 as needed. The present disclosurecontemplates any suitable clients 530. A client 530 may enable a networkuser at client 530 to access network 530. A client 530 may enable itsuser to communicate with other users at other clients 530.

A client 530 may have a web browser 532, such as MICROSOFT INTERNETEXPLORER, GOOGLE CHROME or MOZILLA FIREFOX, and may have one or moreadd-ons, plug-ins, or other extensions, such as TOOLBAR or YAHOOTOOLBAR. A user at client 530 may enter a Uniform Resource Locator (URL)or other address directing the web browser 532 to a server 520, and theweb browser 532 may generate a Hyper Text Transfer Protocol (HTTP)request and communicate the HTTP request to server 520. Server 520 mayaccept the HTTP request and communicate to client 530 one or more HyperText Markup Language (HTML) files responsive to the HTTP request. Client530 may render a web page based on the HTML files from server 520 forpresentation to the user. The present disclosure contemplates anysuitable web page files. As an example and not by way of limitation, webpages may render from HTML files, Extensible Hyper Text Markup Language(XHTML) files, or Extensible Markup Language (XML) files, according toparticular needs. Such pages may also execute scripts such as, forexample and without limitation, those written in JAVASCRIPT, JAVA,MICROSOFT SILVERLIGHT, combinations of markup language and scripts suchas AJAX (Asynchronous JAVASCRIPT and XML), and the like. Herein,reference to a web page encompasses one or more corresponding web pagefiles (which a browser may use to render the web page) and vice versa,where appropriate.

Particular embodiments may be implemented on one or more computersystems. FIG. 5 illustrates an example computer system 600, which may beused to implement a writ response system, a queue manager or a reviewstation. In particular embodiments, one or more computer systems 600perform one or more steps of one or more methods described orillustrated herein. In particular embodiments, one or more computersystems 600 provide functionality described or illustrated herein. Inparticular embodiments, software running on one or more computer systems600 performs one or more steps of one or more methods described orillustrated herein or provides functionality described or illustratedherein. Particular embodiments include one or more portions of one ormore computer systems 600.

This disclosure contemplates any suitable number of computer systems600. This disclosure contemplates computer system 600 taking anysuitable physical form. As example and not by way of limitation,computer system 600 may be an embedded computer system, a system-on-chip(SOC), a single-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, or a combination of two or more ofthese. Where appropriate, computer system 600 may include one or morecomputer systems 600; be unitary or distributed; span multiplelocations; span multiple machines; or reside in a cloud, which mayinclude one or more cloud components in one or more networks. Whereappropriate, one or more computer systems 600 may perform withoutsubstantial spatial or temporal limitation one or more steps of one ormore methods described or illustrated herein. As an example and not byway of limitation, one or more computer systems 600 may perform in realtime or in batch mode one or more steps of one or more methods describedor illustrated herein. One or more computer systems 600 may perform atdifferent times or at different locations one or more steps of one ormore methods described or illustrated herein, where appropriate.

In particular embodiments, computer system 600 includes a processor 602,memory 604, storage 606, an input/output (I/O) interface 608, acommunication interface 610, and a bus 612. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 602 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 602 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 604, or storage 606; decode and execute them; andthen write one or more results to an internal register, an internalcache, memory 604, or storage 606. In particular embodiments, processor602 may include one or more internal caches for data, instructions, oraddresses. The present disclosure contemplates processor 602 includingany suitable number of any suitable internal caches, where appropriate.As an example and not by way of limitation, processor 602 may includeone or more instruction caches, one or more data caches, and one or moretranslation lookaside buffers (TLBs). Instructions in the instructioncaches may be copies of instructions in memory 604 or storage 606, andthe instruction caches may speed up retrieval of those instructions byprocessor 602. Data in the data caches may be copies of data in memory604 or storage 606 for instructions executing at processor 602 tooperate on; the results of previous instructions executed at processor602 for access by subsequent instructions executing at processor 602 orfor writing to memory 604 or storage 606; or other suitable data. Thedata caches may speed up read or write operations by processor 602. TheTLBs may speed up virtual-address translation for processor 602. Inparticular embodiments, processor 602 may include one or more internalregisters for data, instructions, or addresses. The present disclosurecontemplates processor 602 including any suitable number of any suitableinternal registers, where appropriate. Where appropriate, processor 602may include one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 602. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 604 includes main memory for storinginstructions for processor 602 to execute or data for processor 602 tooperate on. As an example and not by way of limitation, computer system600 may load instructions from storage 606 or another source (such as,for example, another computer system 600) to memory 604. Processor 602may then load the instructions from memory 604 to an internal registeror internal cache. To execute the instructions, processor 602 mayretrieve the instructions from the internal register or internal cacheand decode them. During or after execution of the instructions,processor 602 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor602 may then write one or more of those results to memory 604. Inparticular embodiments, processor 602 executes only instructions in oneor more internal registers or internal caches or in memory 604 (asopposed to storage 606 or elsewhere) and operates only on data in one ormore internal registers or internal caches or in memory 604 (as opposedto storage 606 or elsewhere). One or more memory buses (which may eachinclude an address bus and a data bus) may couple processor 602 tomemory 604. Bus 612 may include one or more memory buses, as describedbelow. In particular embodiments, one or more memory management units(MMUs) reside between processor 602 and memory 604 and facilitateaccesses to memory 604 requested by processor 602. In particularembodiments, memory 604 includes random access memory (RAM). This RAMmay be volatile memory, where appropriate Where appropriate, this RAMmay be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thepresent disclosure contemplates any suitable RAM. Memory 604 may includeone or more memories 604, where appropriate. Although this disclosuredescribes and illustrates particular memory, this disclosurecontemplates any suitable memory.

In particular embodiments, storage 606 includes mass storage for data orinstructions. As an example and not by way of limitation, storage 606may include an HDD, a floppy disk drive, flash memory, an optical disc,a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB)drive or a combination of two or more of these. Storage 606 may includeremovable or non-removable (or fixed) media, where appropriate. Storage606 may be internal or external to computer system 600, whereappropriate. In particular embodiments, storage 606 is non-volatile,solid-state memory. In particular embodiments, storage 606 includesread-only memory (ROM). Where appropriate, this ROM may bemask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these. Thisdisclosure contemplates mass storage 606 taking any suitable physicalform. Storage 606 may include one or more storage control unitsfacilitating communication between processor 602 and storage 606, whereappropriate. Where appropriate, storage 606 may include one or morestorages 606. Although this disclosure describes and illustratesparticular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface 608 includes hardware,software, or both providing one or more interfaces for communicationbetween computer system 600 and one or more I/O devices. Computer system600 may include one or more of these I/O devices, where appropriate. Oneor more of these I/O devices may enable communication between a personand computer system 600. As an example and not by way of limitation, anI/O device may include a keyboard, keypad, microphone, monitor, mouse,printer, scanner, speaker, still camera, stylus, tablet, touch screen,trackball, video camera, another suitable I/O device or a combination oftwo or more of these. An I/O device may include one or more sensors.This disclosure contemplates any suitable I/O devices and any suitableI/O interfaces 608 for them. Where appropriate, I/O interface 608 mayinclude one or more device or software drivers enabling processor 602 todrive one or more of these I/O devices. I/O interface 608 may includeone or more I/O interfaces 608, where appropriate. Although thisdisclosure describes and illustrates a particular I/O interface, thisdisclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface 610 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 600 and one or more other computer systems 600 or one ormore networks. As an example and not by way of limitation, communicationinterface 610 may include a network interface controller (NIC) ornetwork adapter for communicating with an Ethernet or other wire-basednetwork or a wireless NIC (WNIC) or wireless adapter for communicatingwith a wireless network, such as a WI-FI network. This disclosurecontemplates any suitable network and any suitable communicationinterface 610 for it. As an example and not by way of limitation,computer system 600 may communicate with an ad hoc network, a personalarea network (PAN), a local area network (LAN), a wide area network(WAN), a metropolitan area network (MAN), or one or more portions of theInternet or a combination of two or more of these. One or more portionsof one or more of these networks may be wired or wireless. As anexample, computer system 600 may communicate with a wireless PAN (WPAN)(such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAXnetwork, a cellular telephone network (such as, for example, a GlobalSystem for Mobile Communications (GSM) network), or other suitablewireless network or a combination of two or more of these. Computersystem 600 may include any suitable communication interface 610 for anyof these networks, where appropriate. Communication interface 610 mayinclude one or more communication interfaces 610, where appropriate.Although this disclosure describes and illustrates a particularcommunication interface, this disclosure contemplates any suitablecommunication interface.

In particular embodiments, bus 612 includes hardware, software, or bothcoupling components of computer system 600 to each other. As an exampleand not by way of limitation, bus 612 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCI-X) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 612may include one or more buses 612, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, reference to a computer-readable storage medium encompasses oneor more non-transitory, tangible computer-readable storage mediapossessing structure. As an example and not by way of limitation, acomputer-readable storage medium may include a semiconductor-based orother integrated circuit (IC) (such, as for example, afield-programmable gate array (FPGA) or an application-specific IC(ASIC)), a hard disk, an HDD, a hybrid hard drive (HHD), an opticaldisc, an optical disc drive (ODD), a magneto-optical disc, amagneto-optical drive, a floppy disk, a floppy disk drive (FDD),magnetic tape, a holographic storage medium, a solid-state drive (SSD),a RAM-drive, a SECURE DIGITAL card, a SECURE DIGITAL drive, or anothersuitable computer-readable storage medium or a combination of two ormore of these, where appropriate. Herein, reference to acomputer-readable storage medium excludes any medium that is noteligible for patent protection under 35 U.S.C. §101. Herein, referenceto a computer-readable storage medium excludes transitory forms ofsignal transmission (such as a propagating electrical or electromagneticsignal per se) to the extent that they are not eligible for patentprotection under 35 U.S.C. §101. A computer-readable non-transitorystorage medium may be volatile, non-volatile, or a combination ofvolatile and non-volatile, where appropriate.

This disclosure contemplates one or more computer-readable storage mediaimplementing any suitable storage. In particular embodiments, acomputer-readable storage medium implements one or more portions ofprocessor 602 (such as, for example, one or more internal registers orcaches), one or more portions of memory 604, one or more portions ofstorage 606, or a combination of these, where appropriate. In particularembodiments, a computer-readable storage medium implements RAM or ROM.In particular embodiments, a computer-readable storage medium implementsvolatile or persistent memory. In particular embodiments, one or morecomputer-readable storage media embody software. Herein, reference tosoftware may encompass one or more applications, bytecode, one or morecomputer programs, one or more executables, one or more instructions,logic, machine code, one or more scripts, or source code, and viceversa, where appropriate. In particular embodiments, software includesone or more application programming interfaces (APIs). This disclosurecontemplates any suitable software written or otherwise expressed in anysuitable programming language or combination of programming languages.In particular embodiments, software is expressed as source code orobject code. In particular embodiments, software is expressed in ahigher-level programming language, such as, for example, C, Perl, or asuitable extension thereof. In particular embodiments, software isexpressed in a lower-level programming language, such as assemblylanguage (or machine code). In particular embodiments, software isexpressed in JAVA. In particular embodiments, software is expressed inHyper Text Markup Language (HTML), Extensible Markup Language (XML), orother suitable markup language.

The present disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsherein that a person having ordinary skill in the art would comprehend.Similarly, where appropriate, the appended claims encompass all changes,substitutions, variations, alterations, and modifications to the exampleembodiments herein that a person having ordinary skill in the art wouldcomprehend.

What is claimed is:
 1. An apparatus, comprising: a memory; one or moreprocessors: and computer program code stored on a non-transitorycomputer-readable medium, the computer program code comprising a writresponse module and a queue manager; wherein the writ response modulecomprises computer-readable instructions operative, when executed, tocause the one or more processors to: access a writ request and identifya writ type corresponding to the writ request; access one or more datastores to generate a report in response to the writ request, the reportincluding data obtained from the one or more databases based on theidentified writ type; pass the report to a queue manager; wherein thequeue manager comprises computer-readable instructions operative, whenexecuted, to cause the one or more processors to: in response to areceived report, select a reviewing queue by applying a rule set to oneor more tags associated with the writ request or the report; and enterthe received report on the selected reviewing queue.
 2. The apparatus ofclaim 1, wherein the reviewing queue is selected from a plurality ofreviewing queues, the plurality comprising a high priority queue.
 3. Theapparatus of claim 1, wherein the writ request comprises one or moresupporting documents.
 4. The apparatus of claim 1, wherein the writresponse module further comprises instructions operative to cause theone or more processors to: release the received report to one or morerequesting systems upon indication of release approval.
 5. The apparatusof claim 1, further comprising an approval station; wherein the approvalstation is operative to: display one or more attributes of the writrequest and the received report; and receive an indication of releaseapproval for the received report.
 6. The apparatus of claim 5 whereinthe approval station is further operative to facilitate editing of thereceived report.
 7. The apparatus of claim 5, wherein the writ responsemodule further comprises instructions operative to cause the one or moreprocessors to: apply a rule set to send a push notification or an alertupon indication that a release approval has been entered for thereceived report.
 8. The apparatus of claim 1, further comprising areview station; wherein the review station is operative to: access thereviewing queues to generate a user interface identifying one or morereports for review; wherein the user interface includes controlsallowing the reviewing user to modify the report and to release thereport; and display a high priority review section.
 9. The apparatus ofclaim 1, wherein the writ response module further comprises instructionsoperative to cause the one or more processors to: route the writ requestfor pre-approval prior to generating the report, and initiate generationof the report upon approval of the writ request.
 10. A methodcomprising: accessing, by one or more computing devices, a writ requestand identifying a writ type corresponding to the writ request; accessingone or more data stores to generate a report in response to the writrequest, the report including data obtained from the one or moredatabases based on the identified writ type; passing the report to aqueue manager hosted on one or more computing devices; in response to areceived report, selecting by the queue manager, a reviewing queue byapplying a rule set to one or more tags associated with the writ requestor the report; and entering the received report on the selectedreviewing queue.
 11. The method of claim 10, wherein the reviewing queueis selected from a plurality of reviewing queues, the pluralitycomprising a high priority queue.
 12. The method of claim 10, whereinthe writ request comprises one or more supporting documents.
 13. Themethod of claim 10, wherein the writ response module further comprisesinstructions operative to cause the one or more processors to: releasethe received report to one or more requesting systems upon indication ofrelease approval.
 14. The method of claim 10, further comprisingdisplaying, by an approval station, one or more attributes of the writrequest and the received report; and receiving, by the approval station,an indication of release approval for the received report.
 15. Themethod of claim 14 further comprising facilitating, by the approvalstation, editing of the received report.
 16. The method of claim 14further comprising applying a rule set to send a push notification or analert upon indication that a release approval has been entered for thereceived report.
 17. The method of claim 10, further comprising a reviewstation; accessing, by a review station, the reviewing queues togenerate a user interface identifying one or more reports for review;wherein the user interface includes controls allowing the reviewing userto modify the report and to release the report; and displaying, by thereview station, a high priority review section.
 18. The method of claim10 further comprising routing the writ request for pre-approval prior togenerating the report, and initiating generation of the report uponapproval of the writ request.
 19. Computer program code stored on one ormore non-transitory computer-readable media, the computer program codecomprising a writ response module and a queue manager; wherein the writresponse module comprises computer-readable instructions operative, whenexecuted, to cause one or more processors to: access a writ request andidentify a writ type corresponding to the writ request; access one ormore data stores to generate a report in response to the writ request,the report including data obtained from the one or more databases basedon the identified writ type; pass the report to a queue manager; whereinthe queue manager comprises computer-readable instructions operative,when executed, to cause one or more processors to: in response to areceived report, select a reviewing queue by applying a rule set to oneor more tags associated with the writ request or the report; and enterthe received report on the selected reviewing queue.
 20. The computerprogram code of claim 19, wherein the reviewing queue is selected from aplurality of reviewing queues, the plurality comprising a high priorityqueue.